package com.example.bigevent.exception;

import ch.qos.logback.core.util.StringUtil;
import com.example.bigevent.pojo.Result;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

@RestControllerAdvice
/*它主要用于集中处理整个应用程序中由@RestController类产生的异常情况以及进行一些通用的请求处理增强操作。
相当于它把对@RestController相关的异常处理和部分请求预处理等功能进行了集中化管理，
使得代码更加清晰、易于维护。*/
public class GlobalException {
    @ExceptionHandler(Exception.class)
    /*@ExceptionHandler注解允许开发者将处理特定类型异常的代码集中到一个或多个专门的方法中，
    这样一旦在应用程序的某个地方抛出了被标注的这种类型的异常，
    就会自动调用相应的异常处理方法进行处理，*/
    public Result handleException(Exception e)
    {
        e.printStackTrace();
        return Result.error(StringUtil.isNullOrEmpty(e.getMessage())?e.getMessage():"操作失败");//Exception类内部就包括了错误异常信息
        //不过有的Exception内部没有错误信息
    }

}
